package com.zuoyy.common.enums;

import com.zuoyy.common.constant.AdminConst;
import com.zuoyy.common.exception.interfaces.ResultInterface;
import lombok.Getter;

/**
 * 后台返回结果集枚举
 * @author zuo
 */
@Getter
public enum ResultEnum implements ResultInterface {


    /**
     * 通用状态
     */
    SUCCESS(200, "成功"),
    ERROR(500, "系统错误"),

    BEAN_VALID_FAILED(AdminConst.ERROR_BUSINESS, "数据验证不通过"),

    /**
     * token问题
     */
    TOKEN_ERROR(3001, "token无效"),
    TOKEN_EXPIRED(3002, "token已过期"),

    /**
     * 账号问题
     */
    AUTH_REQUEST_ERROR(4001, "用户名或密码错误"),
    AUTH_REQUEST_LOCKED(4002, "该账号已被冻结"),

    /**
     * 用户问题
     */
    USER_EXIST(AdminConst.ERROR_BUSINESS, "该用户名已经存在"),
    USER_PWD_NULL(AdminConst.ERROR_BUSINESS, "密码不能为空"),
    USER_INEQUALITY(AdminConst.ERROR_BUSINESS, "两次密码不一致"),
    USER_OLD_PWD_ERROR(AdminConst.ERROR_BUSINESS, "原来密码不正确"),
    USER_NAME_PWD_NULL(AdminConst.ERROR_BUSINESS, "用户名和密码不能为空"),
    USER_CAPTCHA_NULL(AdminConst.ERROR_BUSINESS, "验证码不能为空"),
    USER_CAPTCHA_ERROR(AdminConst.ERROR_BUSINESS, "验证码错误"),

    MENU_EXIST(AdminConst.ERROR_BUSINESS, "该权限标识已经存在，不允许重复！"),

    /**
     * 角色问题
     */
    ROLE_EXIST(AdminConst.ERROR_BUSINESS, "该角色标识已经存在，不允许重复！"),

    /**
     * 字典问题
     */
    DICT_EXIST(AdminConst.ERROR_BUSINESS, "该字典标识已经存在，不允许重复！"),

    /**
     * 非法操作
     */
    STATUS_ERROR(AdminConst.ERROR_BUSINESS, "非法操作：状态有误"),

    /**
     * 权限问题
     */
    NO_PERMISSIONS(AdminConst.ERROR_BUSINESS, "权限不足！"),
    NO_ADMIN_AUTH(AdminConst.ERROR_BUSINESS, "不允许操作超级管理员"),
    NO_ADMIN_STATUS(AdminConst.ERROR_BUSINESS, "不能修改超级管理员状态"),
    NO_ADMINROLE_AUTH(AdminConst.ERROR_BUSINESS, "不允许操作管理员角色"),
    NO_ADMINROLE_STATUS(AdminConst.ERROR_BUSINESS, "不能修改管理员角色状态"),

    DEV_MENU_CHECK(AdminConst.ERROR_BUSINESS, "只能选择一级菜单！"),;

    private Integer code;

    private String message;

    ResultEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}
